package com.yzc.mihuyou.util;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.UUID;

@Configuration
public class ImgServe {

    private static String path="E:\\image\\";


// 添加单个文件
    public static String uploadImg(MultipartFile multipartFile) {
        // 1、获取真实文件名
        String originalFilename = multipartFile.getOriginalFilename();
        // 2、截取图片的后缀 lastIndexOf最后出现.的位置
        String imgSuffix = originalFilename.substring(originalFilename.lastIndexOf("."));
        // 3、生成唯一文件名
        String newFileName = UUID.randomUUID().toString()+imgSuffix;
        // 4、日期目录
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
        String dataPath = dateFormat.format(new Date());
        // 5、指定文件上传后的目录
        File targetPath = new File(path, dataPath); // 拼接成新目录
        // mkdirs:不存在则创建，mkdir:不存在则返回false
        if(!targetPath.exists()) targetPath.mkdirs(); // 如果目录不存在，则递归创建
        // 6、指定文件上传后的服务器完整路径[包括文件名]
        File TargetFileName = new File(targetPath, newFileName);
        // 7、文件上传到指定目录
        try {
            multipartFile.transferTo(TargetFileName); // 文件上传到指定目录
            System.out.println(TargetFileName); // D:\2021\12\05\D:\2021\12\05\68f61bc7-07b9-41c6-876b-22c9a57f5606.png
            String finalFileName = dataPath + "/" + newFileName;
            return "http://z534021l97.zicp.vip/pircevr/"+"/"+finalFileName; // 返回可访问的地址
        } catch (Exception e) {
            e.printStackTrace();
            return "fail";
        }
    }


    //添加多个个文件
    public static HashMap<String, String> uploadImg2(MultipartFile multipartFile[]) {
        HashMap<String, String> imgPathList = new HashMap<>(); // 用来存储照片下标和路径并返回
        for (int i = 0; i < multipartFile.length; i++) {
            // 1、获取真实文件名
            String originalFilename = multipartFile[i].getOriginalFilename();
            // 2、截取图片的后缀 lastIndexOf从后往前找
            String imgSuffix = originalFilename.substring(originalFilename.lastIndexOf("."));
            // 3、生成唯一文件名
            String newFileName = UUID.randomUUID().toString()+imgSuffix;
            // 4、日期目录
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
            String dataPath = dateFormat.format(new Date());
            // 5、指定文件上传后的目录
            File targetPath = new File(path, dataPath); // 拼接成新目录
            // mkdirs:不存在则创建，mkdir:不存在则返回false
            if(!targetPath.exists()) targetPath.mkdirs(); // 如果目录不存在，则递归创建
            // 6、指定文件上传后的服务器完整路径[包括文件名]
            File TargetFileName = new File(targetPath, newFileName);
            // 7、文件上传到指定目录
            try {
                multipartFile[i].transferTo(TargetFileName); // 文件上传到指定目录
                // System.out.println(TargetFileName); // D:\2021\12\05\D:\2021\12\05\68f61bc7-07b9-41c6-876b-22c9a57f5606.png
                // 8、返回映射的完整路径
                String finalFileName = dataPath + "/" + newFileName;
                String path = "http://z534021l97.zicp.vip   /pircevr" + "/" + finalFileName;
                imgPathList.put("photo"+(i+1), path);
            } catch (Exception e) {
                e.printStackTrace();
                imgPathList.put("photo" + (i + 1), "fail");
            }
        }
        return imgPathList;
    }


}
